首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
fetch
audio
main
cmd
web3
web
version
object
typescript
controller
plugins
const
netty
char
cpython
php7
dll
integer
email
foreach
bitmap
format
vba
post
select
regex
get
nodejs
ip
command
callback
actionscrip
c语言
iostream
tags
python
io
php
substring
blob
javascript
jsp
bit
go
export
heatmap
range
merge
triggers
hash
include
ascii
scala
tree
flutter
php8
split
settings
vbscript
bytecode
match
cPlusPlus
runtime
heap
window
rsa
process
input
spring
request
case
uml
testing
cookie
metadata
text
expression
config
grid
当前位置:
开发笔记
>
编程语言
> 正文
下图|加号_Flink1.9.2源码编译和使用
作者:刘伟亮 | 来源:互联网 | 2023-08-30 15:06
篇首语:本文由编程笔记#小编为大家整理,主要介绍了Flink1.9.2源码编译和使用相关的知识,希望对你有一定的参考价值。欢迎访
篇首语:本文由编程笔记#小编为大家整理,主要介绍了Flink1.9.2源码编译和使用相关的知识,希望对你有一定的参考价值。
欢迎访问我的GitHub
为什么要编译flink源码
用于学习,在IDEA上开发的flink job,能直接在IDEA运行,如果运行时依赖的flink框架是我们自己编译构建的,就做到了从业务到框架都可以修改源码并验证,起到了很好的学习和动手实践效果;
环境信息
电脑:2019版13寸MacBook Pro,2.3 GHz 四核Intel Core i5,8 GB 2133 MHz LPDDR3
操作系统:macOS Catalina 10.15.3
JDK:1.8.0_211
Maven:3.6.0
IDEA:2018.3.5 (Ultimate Edition)
关于正版IDEA
如何免费使用正版IDEA,可以参考《免费申请和使用IntelliJ IDEA商业版License指南》
全文概览
今天的实战由以下内容组成:
开发一个最简单的flink任务,在IDEA上以local模式运行;
下载flink1.9.2源码;
修改flink1.9.2源码,并且编译构建;
设置,让步骤1中的flink任务用上刚刚编译的flink1.9.2框架;
再次运行flink任务,验证修改后的flink框架是否生效;
IDEA上运行flink job工程
在IDEA上创建flink job的maven工程并运行,请参考《IDEA上运行Flink任务》
假设您已按上面的步骤在IDEA建好了flink job工程;
运行起来,在浏览器打开flink页面,如下图,绿框中显示一共有8个Task Slot:
之所以会有8个Task Slot,和下图红框中的代码有关,这是段flink框架源码(StreamExecutionEnvironment.java),入参
parallelism
是CPU核数,我这里是开了超线程的四核i5处理器,所以
parallelism
等于8:
今天的目标就是修改上图红框中的源码,然后在网页上看是不是生效了(Task Slot数量从8改成5);
准备工作
maven中央仓库地址建议用阿里云的,否则会经常遇到jar下载超时错误,地址:http://192.168.50.43:8081/repository/aliyun-proxy/
flink1.9.2源码的maven工程依赖了一个中央仓库没有的jar,GAV是io.confluent:kafka-schema-registry-client:3.3.1,您需要下载下来在本地仓库做
mvn install
操作,下载地址:http://packages.confluent.io/maven/io/confluent/kafka-schema-registry-client/3.3.1/kafka-schema-registry-client-3.3.1.jar
上述准备工作都需要您在本地maven上操作,但是如果您的条件允许,还是强烈推荐在内网搭建maven私服nexus3,参考:《群晖DS218+做maven私服(nexus3)》、《Ubuntu部署和体验Nexus3》、《Nexus3常用功能备忘》
下载flink1.9.2源码
flink1.9.2源码的下载地址:http://ftp.jaist.ac.jp/pub/apache/flink/flink-1.9.2/flink-1.9.2-src.tgz
修改和编译构建
将下载好的flink-1.9.2-src.tgz解压,得到文件夹flink-1.9.2
打开这个文件:flink-1.9.2/flink-streaming-java/src/main/java/org/apache/flink/streaming/api/environment/StreamExecutionEnvironment.java
如下图红框,找到
createLocalEnvironment
方法,把
setParallelism
的入参改成一个固定的数字(每个Task Slot都要分配内存,所以这个数字请不要改得太大,否则启动flink就会报错了,我这里改成了5):
在文件夹
flink-1.9.2
下,执行编译构建的命令:
mvn clean install -DskipTests -Dfast
经历漫长等待后提示构建成功:
确认这个文件已生成,稍后就要用到:
flink-1.9.2/flink-dist/target/flink-dist_2.11-1.9.2.jar
设置
为了用上刚刚构建出来的flink框架jar,要做些设置,打开之前运行的flink job应用,在项目上点击右键,点击菜单
Open Module Settings
,如下图:
接下来要做三个和jar有关的操作,注意每一步都很重要:
下图红框1中的flink-dist_2.11-1.9.2.jar文件,是《IDEA上运行Flink任务》一文中添加的,目的是提供网页服务,现在将其删除,操作如下图红框所示:
下图红框1中的maven依赖:
org.apache.flink:flink-streaming-java_2.11:1.9.2
,也请删除,操作如下图红框所示:
点击下图红框中的加号:
在弹出的窗口选中刚才构建好的文件
flink-1.9.2/flink-dist/target/flink-dist_2.11-1.9.2.jar
:
记得点击右下角的OK按钮保存,修改完毕,接下来验证咱们修改的flink框架源码是否生效了
验证
当前flink job工程来自《IDEA上运行Flink任务》一文,StreamingJob的工作是读取本机18081端口的数据,所以我们要把18081端口的服务启动起来,不然StreamingJob运行时是连不上端口的,打开一个控制台,执行命令:
nc -l 18081
现在可以将StreamingJob运行起来,如下图,右键点击StreamingJob,选择Run StreamingJob.main():即可启动flink任务:
在IDEA的控制台搜索关键字
localhost
,如下图红框,可以查到flink网页的端口,我这里是
52704
:
浏览器访问
http://localhost:52704
,如下图红框,Total Task Slots数量是5,我们修改的flink1.9.2的源码生效了:
至此,Flink1.9.2的源码从修改到编译构建,再到验证都已经完成了,如果您也在学习flink,希望本文能给您一些参考,一起来动手实战吧;
欢迎关注51CTO博客:
程序员
欣宸
android
flink
编译
编程
git
ide
int
macos
io
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
object
XML介绍与使用的概述及标签规则
本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ...
[详细]
蜡笔小新 2023-12-13 17:39:50
version
如何实现JDK版本的切换功能,解决开发环境冲突问题
本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ...
[详细]
蜡笔小新 2023-12-10 19:24:11
char
Java实现大数乘法(分治算法)
本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ...
[详细]
蜡笔小新 2023-12-14 15:43:50
ip
android listview OnItemClickListener失效原因
最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ...
[详细]
蜡笔小新 2023-12-14 14:25:50
web
如何用UE4制作2D游戏文档——计算篇
篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ...
[详细]
蜡笔小新 2023-12-14 09:50:34
web
flowable工作流 流程变量_信也科技工作流平台的技术实践
1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ...
[详细]
蜡笔小新 2023-12-13 10:17:15
get
开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ...
[详细]
蜡笔小新 2023-12-10 11:49:29
web
shiro java配置问题:加入Shiro listener后启动失败
本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ...
[详细]
蜡笔小新 2023-12-10 09:43:05
web
maven项目_idea导入本地maven项目
篇首语:本文由编程笔记#小编为大家整理,主要介绍了idea导入本地maven项目相关的知识,希望对你有一定的参考价值。首先把项目关闭Fil ...
[详细]
蜡笔小新 2023-10-17 23:48:22
get
Java太阳系小游戏分析和源码详解
本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ...
[详细]
蜡笔小新 2023-12-14 19:53:34
ip
SpringBoot yml 配置 多配置文件,开发环境,生产环境配置文件分开
原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ...
[详细]
蜡笔小新 2023-12-14 12:39:13
get
OpenMap教程4 – 图层概述
本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ...
[详细]
蜡笔小新 2023-12-09 19:26:56
get
Jboss的EJB部署描述符standardjaws.xml配置步骤详解
本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ...
[详细]
蜡笔小新 2023-12-09 18:15:53
get
解决java开源项目apache commons email简单使用报错的方法
本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ...
[详细]
蜡笔小新 2023-12-09 17:35:16
version
使用Spring AOP实现切面编程的步骤和注意事项
本文介绍了使用Spring AOP实现切面编程的步骤和注意事项。首先解释了@EnableAspectJAutoProxy、@Aspect、@Pointcut等注解的作用,并介绍了实现AOP功能的方法。然后详细介绍了创建切面、编写测试代码的过程,并展示了测试结果。接着讲解了关于环绕通知的使用方法,并修改了FirstTangent类以添加环绕通知方法。最后介绍了利用AOP拦截注解的方法,只需修改全局切入点即可实现。使用Spring AOP进行切面编程可以方便地实现对代码的增强和拦截。 ...
[详细]
蜡笔小新 2023-12-09 10:25:26
刘伟亮
这个家伙很懒,什么也没留下!
Tags | 热门标签
fetch
audio
main
cmd
web3
web
version
object
typescript
controller
plugins
const
netty
char
cpython
php7
dll
integer
email
foreach
bitmap
format
vba
post
select
regex
get
nodejs
ip
command
RankList | 热门文章
1
Spring Boot项目中jar包在服务器上启动的正确姿势
2
Spring Security OAuth 个性化token的使用
3
浅谈导入JavaWeb 项目出现的问题
4
java使用Base64实现文件加密解密
5
全面剖析java中的注解(Annotation)
6
spring boot环境抽象的实现方法
7
springboot多环境(dev、test、prod)配置详解
8
java导出Excel通用方法实例
9
微服务搭建集成Spring Cloud Turbine详解
10
简单学习Java API 设计实践
11
spring Profile如何为不同环境提供不同的配置支持
12
Spring加载XSD文件发生错误的解决方法
13
Spring在代码中获取bean的几种方式详解
14
Spring中Bean的生命周期使用解析
15
深入了解Spring中的FactoryBean
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有